package com.skt.domain.VO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 平台订单总览返回视图对象（VO）
 *
 * 说明：
 * - 用于 GET /admin/orders 接口的分页响应列表项。
 * - 包含脱敏后的订单关键信息，不暴露敏感数据（如完整手机号、详细地址等）。
 * - 字段设计遵循数据最小化原则，仅返回管理员必要信息。
 * - 时间字段区分日期（LocalDate）与精确时间（LocalDateTime）。
 */
@Data
@Accessors(chain = true)
public class AdminOrderListVO {

    @Schema(description = "订单编号（唯一标识）", example = "ORD20241026001")
    private String orderNo;

    @Schema(description = "用户姓名（已脱敏，如：张*）", example = "张*")
    private String userName;

    @Schema(description = "商家/店铺名称", example = "潮流服饰旗舰店")
    private String merchantName;

    @Schema(description = "订单状态描述（中文可读）", example = "待发货")
    private String statusDesc;

    @Schema(description = "订单总金额（单位：元）", example = "199.90")
    private BigDecimal totalAmount;

    @Schema(description = "订单创建日期（仅日期部分，用于前端展示）", example = "2024-10-26")
    private LocalDate startDate;

    @Schema(description = "订单完成日期（仅日期部分，若未完成则为 null）", example = "2024-10-30")
    private LocalDate endDate;

    @Schema(description = "订单创建的精确时间（含时分秒）", example = "2024-10-26T14:30:00")
    private LocalDateTime createdAt;
}